package com.example.casper.jnuexperiment2025.dataop;

import android.content.Context;
import com.example.casper.jnuexperiment2025.Book;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class BookDataOperator {
    private static final String BOOKS_FILE = "books.dat";

    /**
     * 保存图书列表到文件
     * @param context 上下文
     * @param books 图书列表
     */
    public static void saveBooks(Context context, List<Book> books) {
        try {
            FileOutputStream fos = context.openFileOutput(BOOKS_FILE, Context.MODE_PRIVATE);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(books);
            oos.close();
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 从文件中加载图书列表
     * @param context 上下文
     * @return 图书列表
     */
    public static List<Book> loadBooks(Context context) {
        try {
            FileInputStream fis = context.openFileInput(BOOKS_FILE);
            ObjectInputStream ois = new ObjectInputStream(fis);
            List<Book> books = (List<Book>) ois.readObject();
            ois.close();
            fis.close();
            return books;
        } catch (Exception e) {
            // 如果文件不存在或读取失败，返回默认的图书列表
            e.printStackTrace();
            return getDefaultBooks();
        }
    }

    /**
     * 获取默认图书列表
     * @return 默认图书列表
     */
    private static List<Book> getDefaultBooks() {
        List<Book> books = new ArrayList<>();
        books.add(new Book("无名之书", "29.99", com.example.casper.jnuexperiment2025.R.drawable.book_no_name));
        books.add(new Book("软件项目管理案例教程（第3版）", "45.50", com.example.casper.jnuexperiment2025.R.drawable.book_2));
        books.add(new Book("信息安全数学基础（第2版）", "38.00", com.example.casper.jnuexperiment2025.R.drawable.book_1));
        return books;
    }
}